package com.itbooking.controller.customer;
import com.itbooking.pojo.Customer;
import com.itbooking.service.customer.ICustomerService;
import com.itbooking.core.response.ServerResponse;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 *
 * todo:客户管理Controller控制器类
 * CustomerController<br/>
 * 作者:黄佳钦大佬<br/>
 * 创建时间：2020年04月26日 23:48:11 <br/>
 * @version 1.0.0<br/>
 *
 */
@RestController
@Api(description = "客户管理",tags = "客户管理")
@RequestMapping("/api/customer")
@Log4j2
public class CustomerController {

	@Autowired
	private ICustomerService customerService;

	/**
	 * 查询客户管理信息并分页
	 * 方法名：getCustomer<br/>
	 * 创建人：黄佳钦大佬 <br/>
	 * 时间：2020年04月26日 23:48:11 <br/>
	 * 手机:15074816437222<br/>
	 * @return ServerResponse<br/>
	 * @exception <br/>
	 * @since  1.0.0<br/>
	*/
	@GetMapping("/queryall")
	@ApiOperation(value="查询客户管理信息并分页" ,notes="参数描述:\n keyword 关键字搜索 \n 返回参数:\n" +
		"id \n" +
		"customerId 客户id\n" +
		"firstName \n" +
		"lastName \n" +
		"gender 0-女,1-男\n" +
		"email \n" +
		"password \n" +
		"createTime \n" +
		"updateTime \n" +
		"isDeleted \n" +
		"status \n" +
		"version \n" 
		)
	public ServerResponse customerqueryall(@RequestParam(value="pageNo",defaultValue="1",required=false) Integer pageNo,
			@RequestParam(value="pageSize",defaultValue="10",required=false) Integer pageSize,
			@RequestParam(value="keyword",defaultValue="",required=false) String keyword) {
		return customerService.queryCustomerAllForMap(keyword,pageNo, pageSize);
	}

	/**
	 * 根据id查询信息
	 * 方法名：getCustomer<br/>
	 * 创建人黄佳钦大佬 <br/>
	 * 时间：2020年04月26日 23:48:11 <br/>
	 * 手机:15074816437222<br/>
	 * @param id
	 * @return ServerResponse<br/>
	 * @exception <br/>
	 * @since  1.0.0<br/>
	 */
	@GetMapping("/get/{id}")
	@ApiOperation(value="根据ID获取客户管理",notes="参数描述:\n id 编号 \n 返回参数:\n" +
        "id \n" +
                "customerId 客户id\n" +
                "firstName \n" +
                "lastName \n" +
                "gender 0-女,1-男\n" +
                "email \n" +
                "password \n" +
                "createTime \n" +
                "updateTime \n" +
                "isDeleted \n" +
                "status \n" +
                "version \n" 
        )
	public ServerResponse getCustomer(@PathVariable("id") Integer id) {
		return customerService.getCustomerByIdForMap(id);
	}

	/**
	 * 保存
	 * 方法名：saveCustomer<br/>
	 * 创建人：黄佳钦大佬 <br/>
	 * 时间：2020年04月26日 23:48:11<br/>
	 * 手机:15074816437222<br/>
	 * @return ServerResponse<br/>
	 * @exception <br/>
	 * @since  1.0.0<br/>
	 */
	@PostMapping("/save")
	@ApiOperation(value="保存客户管理",notes="参数参数:\n" +
        "id \n" +
                "customerId 客户id\n" +
                "firstName \n" +
                "lastName \n" +
                "gender 0-女,1-男\n" +
                "email \n" +
                "password \n" +
                "createTime \n" +
                "updateTime \n" +
                "isDeleted \n" +
                "status \n" +
                "version \n" 
        )
	public ServerResponse saveCustomer(@RequestBody Customer customer) {
		return customerService.saveCustomer(customer);
	}

	/**
	 * 修改
	 * 方法名：updateCustomer<br/>
	 * 创建人：黄佳钦大佬 <br/>
	 * 时间：2020年04月26日 23:48:11 <br/>
	 * 手机:15074816437222<br/>
	 * @return ServerResponse<br/>
	 * @exception <br/>
	 * @since  1.0.0<br/>
	 */
	@PostMapping("/update")
	@ApiOperation(value="修改客户管理",notes="参数参数:\n" +
        "id \n" +
                "customerId 客户id\n" +
                "firstName \n" +
                "lastName \n" +
                "gender 0-女,1-男\n" +
                "email \n" +
                "password \n" +
                "createTime \n" +
                "updateTime \n" +
                "isDeleted \n" +
                "status \n" +
                "version \n" 
        )
	public ServerResponse updateCustomer(@RequestBody Customer customer) {
		return customerService.updateCustomer(customer);
	}

	/**
	 * 删除
	 * 方法名：deleteCustomer<br/>
	 * 创建人：黄佳钦大佬 <br/>
	 * 时间：2020年04月26日 23:48:11 <br/>
	 * 手机:15074816437222<br/>
	 * @param id
	 * @return ServerResponse<br/>
	 * @exception <br/>
	 * @since  1.0.0<br/>
	 */
	@GetMapping("/delete/{id}")
	@ApiOperation(value="删除客户管理",notes="参数描述:\n id 编号 ")
	public ServerResponse deleteCustomer(@PathVariable("id") Integer id) {
		return customerService.deleteCustomerById(id);
	}

	/**
	 * 根据ids批量删除信息
	 * 方法名：deleteBatch<br/>
	 * 创建人：黄佳钦大佬 <br/>
	 * 时间：2020年04月26日 23:48:11 <br/>
	 * 手机:15074816437222<br/>
	 * @return ServerResponse<br/>
	 * @exception <br/>
	 * @since  1.0.0<br/>
	*/
	@GetMapping("/deleteBatch")
	@ApiOperation(value="批量删除客户管理",notes="参数描述:\n opids 编号 英文逗号隔开（1,2,3） ")
	public ServerResponse deleteBatch(@RequestParam("opids") String opids) {
		return customerService.deleteCustomerByIds(opids);
	}
}